# freepost

This is the code powering [freepost](https://freepo.st), a free
discussion board that allows users to post text and links that other
users can read and comment.

# Development

## Setup Python3 virtual environment

    cd freepost-directory
    python3 -m venv venv (if this doesn't work, try `virtualenv -p /usr/bin/python3 venv`)
    source venv/bin/activate
    pip3 install -r requirements.txt

## Run test server

    source venv/bin/activate
    python3 -m bottle --debug --reload --bind 127.0.0.1:8000 freepost

## Build stylesheets

Build CSS files

    stylus --watch --compress --disable-cache --out freepost/static/css/ freepost/static/stylus/freepost.styl

# Deployment

- Build CSS stylesheets (see `Development` above)
- Copy all files to your `public_html` folder
- Make sure `settings.yaml` has restricted permissions, for instance `0600`
- If the SQLite database is located in the same HTML folder, make sure this too has
  restricted access
- Rename `.htaccess.wsgi` or `.htaccess.cgi` to `.htaccess` (if you use CGI or WSGI)
- Change settings in `settings.yaml` if needed
- Create Python virtual environment
  For tuxfamily only: run `newgrp freepost` before creating the virtenv, for quota reasons
- Create a new empty SQLite database: `cat database.schema.sql | sqlite3 database.sqlite`

Everything should be setup and working. Make sure your CGI or WSGI server is
configured correctly.

## License

freepost is [free software](https://www.gnu.org/philosophy/free-sw.html) licensed
as GNU Affero General Public License, either version 3 or (at your option) any
later version.

`monkey` logo art by iko, released as CC0.

